package org.lanqiao.tjut.Service;

import java.util.List;

import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.lanqiao.tjut.Bean.CourseBean;
import org.lanqiao.tjut.Bean.ScoreBean;
import org.lanqiao.tjut.Bean.UsersBean;
import org.lanqiao.tjut.DB.DBDriverFactory;
import org.lanqiao.tjut.Dao.DaoFactory;

public class UserInfoManagerService {

	/**
	 * 保存用户信息
	 * 
	 * @param usersB
	 *            用户信息对象
	 * @return 保存结果的记录行数
	 */
	public int saveUserInfo(UsersBean usersB) {
		int re_i = 0;
		re_i = DaoFactory.getUserInfoManagerDaoInstance().saveUserInfo(usersB);
		return re_i;
	}

	/**
	 * 获取所有的用户信息
	 * 
	 * @return 用户信息集
	 */
	public List<UsersBean> getAllUsersInfo() {
		List<UsersBean> lstUsers = DaoFactory.getUserInfoManagerDaoInstance().getAllUsersInfo();
		return lstUsers;
	}

	/**
	 * 通过id主键获取用户信息
	 * 
	 * @param strUid
	 *            id主键
	 * @return 用户信息
	 */
	public UsersBean getUserInfoById(String strUid) {
		// 使用数据库查询id的信息
		UsersBean usersB = DaoFactory.getUserInfoManagerDaoInstance().getUserInfoById(strUid);
		return usersB;
	}

	/**
	 * 删除指定用户信息
	 * 
	 * @param userId
	 *            指定用户ID
	 * @return 删除结果集
	 */
	public int deleteUserById(int userId) {
		// 根据用户ID删除用户
		int re_i = 0;
		re_i = DaoFactory.getUserInfoManagerDaoInstance().deleteUserById(userId);
		return re_i;
	}

	/**
	 * 查询指定条件用户信息
	 * 
	 * @param usersB
	 *            指定查询条件
	 * @return 查询结果集
	 */
	public List<UsersBean> doQueryByParas(UsersBean usersB) {
		// 调用Dao层进行数据查询
		List<UsersBean> lstUsers = DaoFactory.getUserInfoManagerDaoInstance().doQueryByParas(usersB);
		return lstUsers;
	}

	
	/**
	 * 根据教师ID查询课程信息
	 * 
	 * @param teaId
	 *            教师ID
	 * @return 课程信息
	 */
	public List<CourseBean> getCourseInfoByTeaId(int teaId) {
		// 使用数据库查询id的信息
		List<CourseBean> lstCou = DaoFactory.getUserInfoManagerDaoInstance().getCourseInfoByTeaId(teaId);
		return lstCou;
	}

	/**
	 * 给学生打分
	 * 
	 * @param strParasScores
	 *            新增数据串
	 * @return
	 */
	public int updateStuScore(String strParasScores) {
		int re_i = 0;
		// 新增信息Sql语句
		String strSql = "UPDATE EDUSCORE SET SCORE = ? WHERE ?";
		re_i = DBDriverFactory.getDBDriverInstance().update(strSql, strParasScores);
		return re_i;
	}

	/**
	 * 根据教师ID和课程ID获取成绩信息
	 * 
	 * @param teaId
	 *            教师ID
	 * @param couId
	 *            课程ID
	 * @return 学生成绩信息
	 */
	public List<ScoreBean> getStuInfoBy4Grade(int teaId, int couId) {
		// 查询Sql语句
		String strSql = "SELECT * FROM EDUSCORE WHERE TEAID = ? AND COUID = ?";
		List<ScoreBean> lstSco = DBDriverFactory.getDBDriverInstance().query(strSql,
				new BeanListHandler<ScoreBean>(ScoreBean.class), new Object[] { teaId, couId });
		return lstSco;
	}

	/**
	 * 通过ID获取课程信息
	 * 
	 * @param strUid
	 *            指定ID
	 * @return 课程信息
	 */
	public CourseBean getCouInfoById(String strUid) {
		// 使用数据库查询id的信息
		CourseBean couB = DaoFactory.getUserInfoManagerDaoInstance().getCouInfoById(strUid);
		return couB;
	}

	/**
	 * 查询课程信息
	 * 
	 * @param couB
	 * @return
	 */
	public List<CourseBean> doQueryByParas(CourseBean couB) {
		// 调用Dao层进行数据查询
		List<CourseBean> lstCou = DaoFactory.getUserInfoManagerDaoInstance().doQueryByParas(couB);
		return lstCou;
	}

	/**
	 * 获取所有课程信息
	 * 
	 * @return 课程信息
	 */
	public List<CourseBean> getAllCouInfo() {
		List<CourseBean> lstCou = DaoFactory.getUserInfoManagerDaoInstance().getAllCouInfo();
		return lstCou;
	}

	/**
	 * 删除指定课程
	 * 
	 * @param couid
	 *            课程ID
	 * @return 课程信息
	 */
	public int deleteCouById(int couid) {
		// 根据用户ID删除用户
		int re_i = 0;
		re_i = DaoFactory.getUserInfoManagerDaoInstance().deleteCouById(couid);
		return re_i;
	}

	/**
	 * 新增课程信息
	 * 
	 * @param courseB
	 *            课程实例对象
	 * @return 新增结果
	 */
	public int saveCouInfo(CourseBean courseB) {
		int re_i = 0;
		re_i = DaoFactory.getUserInfoManagerDaoInstance().saveCouInfo(courseB);
		return re_i;
	}
}
